home *** CD-ROM | disk | FTP | other *** search
-
- A.I.B.B.
- Amiga Intuition Based Benchmarks
- Program Release Version 6.5
- Copyright 1991-1993 LaMonte Koop
- All Rights Reserved
-
- MC68040 Users Notes
-
- The Motorola MC68040 microprocessor, newest of the M680x0 series, is of
- recent times seeing more use in various Amiga platforms. The 68040 is
- a very versatile and quite advanced unit, capable of outperforming the earlier
- M680x0 series microprocessors by great lengths. However, as with any
- advanced processing unit as such, the greatest performance benefit is seen
- when it is operating with code fine-tuned for it specifically. This can be
- most easily seen with the 68040 in terms of floating-point operations.
- The MC68040 contains a specialized floating point unit ( FPU )
- internally, as opposed to such a unit being interfaced externally such as
- the MC68030 and an MC68881 or MC68882 floating-point coprocessor. The FPU
- within the 68040 is basically a fine-tuned sub-unit of the MC68882. It
- supports the basic floating-point multiplication, division, addition, and
- subtraction functions, as well as some of the other less complicated
- operations. Unlike the MC68882 and MC68881 however, the complex
- transcendental functions, such as sine, cosine, log functions, etc..., are
- not hardware microcoded, and thus must be software emulated.
- In order to maintain object code compatibility with the MC68881 and
- MC68882, emulation packages for the transcendental functions and other
- missing elements in the 68040 FPU have been developed for use. What these
- packages do is perform the function desired and return the result once the
- 68040 take an unimplemented instruction exception upon encountering an
- FPU call which is not included in this processor's FPU. This allows for
- code previously utilized with the MC68881 and MC68882 to operate normally
- with this processor, but it does contain a disadvantage.
- When the 68040 takes the aformentioned exception trap, there is a
- fair amount of CPU overhead involved. The current processor state must
- be saved, and then the proper exception vector taken, which leads to the
- emulated software function. All of this takes time, and in a code segment
- having many calls to such unimplemented functions in the 68040, this can
- lead to a somewhat noticable slowdown as compared to a straight MC68881 or
- MC68882 interface on an earlier CPU. Despite this, let it not be thought
- that the FPU on the 68040 is unusable for such features.
- The instruction set supported by the built-in 68040 FPU is in fact
- very fine-tuned, with such instructions being performed much faster than on
- either the MC68881 or MC68882. Code specifically designed for the 68040
- can take advantage of this by 'building' the transcendental functions out
- of the existing functions ( the supported functions are in fact the building
- blocks necessary for this ). Such functions designed this way, as either
- a subroutine call or in-line code, will in fact execute FASTER than the
- hardware supported MC68881 or MC68882 versions.
- AIBB includes options for both 68881/68882 inline code, and 68040
- optimized inline code for floating-point tests. The 68040 optimized test
- code should be used whenever possible when operating on a 68040, but
- to get a feel for how more 'common' code, which is designed for the
- 68881/68882, would function, feel free to use the standard coprocessor
- code options.
-